package com.ruoyi.app.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户表对象 app_users
 * 
 * @author ruoyi
 * @date 2025-11-04
 */
public class AppUsers extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    private String openid;
    private String code;
    /** 用户ID */
    private Long userId;

    /** 校友卡ID */
    @Excel(name = "校友卡ID")
    private String schoolcardId;

    /** 用户名 */
    @Excel(name = "用户名")
    private String username;

    /** 头像URL */
    @Excel(name = "头像URL")
    private String avatarUrl;

    /** 性别（0=未知,1=男,2=女） */
    @Excel(name = "性别", readConverterExp = "0==未知,1=男,2=女")
    private Integer gender;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 学号 */
    @Excel(name = "学号")
    private String studentId;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 学院 */
    @Excel(name = "学院")
    private String college;

    /** 专业 */
    @Excel(name = "专业")
    private String major;

    /** 证件类型（身份证/护照/其他） */
    @Excel(name = "证件类型", readConverterExp = "身=份证/护照/其他")
    private String idType;

    /** 证件号 */
    @Excel(name = "证件号")
    private String idNumber;

    /** 证件图片URL-人像 */
    @Excel(name = "证件图片URL-人像")
    private String idImage1;

    /** 证件图片URL-国徽 */
    @Excel(name = "证件图片URL-国徽")
    private String idImage2;

    /** 毕业年份 */
    @Excel(name = "毕业年份")
    private Long graduationYear;

    /** 工作单位 */
    @Excel(name = "工作单位")
    private String company;

    /** 职务 */
    @Excel(name = "职务")
    private String position;

    /** 审核状态（0=未认证,1=审核中,2=已认证,3=认证驳回） */
    @Excel(name = "审核状态", readConverterExp = "0==未认证,1=审核中,2=已认证,3=认证驳回")
    private Integer authStatus;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date authTime;

    /** 用户类型（alumni=校友,student=在校生,teacher=教师,other=其他） */
    @Excel(name = "用户类型", readConverterExp = "a=lumni=校友,student=在校生,teacher=教师,other=其他")
    private String userType;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registTime;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setSchoolcardId(String schoolcardId) 
    {
        this.schoolcardId = schoolcardId;
    }

    public String getSchoolcardId() 
    {
        return schoolcardId;
    }

    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }

    public void setAvatarUrl(String avatarUrl) 
    {
        this.avatarUrl = avatarUrl;
    }

    public String getAvatarUrl() 
    {
        return avatarUrl;
    }

    public void setGender(Integer gender) 
    {
        this.gender = gender;
    }

    public Integer getGender() 
    {
        return gender;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    public void setCollege(String college) 
    {
        this.college = college;
    }

    public String getCollege() 
    {
        return college;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    public void setIdType(String idType) 
    {
        this.idType = idType;
    }

    public String getIdType() 
    {
        return idType;
    }

    public void setIdNumber(String idNumber) 
    {
        this.idNumber = idNumber;
    }

    public String getIdNumber() 
    {
        return idNumber;
    }

    public void setIdImage1(String idImage1) 
    {
        this.idImage1 = idImage1;
    }

    public String getIdImage1() 
    {
        return idImage1;
    }

    public void setIdImage2(String idImage2) 
    {
        this.idImage2 = idImage2;
    }

    public String getIdImage2() 
    {
        return idImage2;
    }

    public void setGraduationYear(Long graduationYear) 
    {
        this.graduationYear = graduationYear;
    }

    public Long getGraduationYear() 
    {
        return graduationYear;
    }

    public void setCompany(String company) 
    {
        this.company = company;
    }

    public String getCompany() 
    {
        return company;
    }

    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }

    public void setAuthStatus(Integer authStatus) 
    {
        this.authStatus = authStatus;
    }

    public Integer getAuthStatus() 
    {
        return authStatus;
    }

    public void setAuthTime(Date authTime) 
    {
        this.authTime = authTime;
    }

    public Date getAuthTime() 
    {
        return authTime;
    }

    public void setUserType(String userType) 
    {
        this.userType = userType;
    }

    public String getUserType() 
    {
        return userType;
    }

    public void setRegistTime(Date registTime) 
    {
        this.registTime = registTime;
    }

    public Date getRegistTime() 
    {
        return registTime;
    }
    public String getCode()
    {
        return code;
    }
    public void setCode(String code){
        this.code = code;
    }
    public String getOpenid ()
        {
            return openid;
        }
        public void setOpenid (String openid)
            {
                this.openid = openid;
            }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("schoolcardId", getSchoolcardId())
            .append("username", getUsername())
            .append("avatarUrl", getAvatarUrl())
            .append("gender", getGender())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("studentId", getStudentId())
            .append("realName", getRealName())
            .append("college", getCollege())
            .append("major", getMajor())
            .append("idType", getIdType())
            .append("idNumber", getIdNumber())
            .append("idImage1", getIdImage1())
            .append("idImage2", getIdImage2())
            .append("graduationYear", getGraduationYear())
            .append("company", getCompany())
            .append("position", getPosition())
            .append("authStatus", getAuthStatus())
            .append("authTime", getAuthTime())
            .append("userType", getUserType())
            .append("registTime", getRegistTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
